package com.atguigu.tingshu.user.client.impl;


import com.atguigu.tingshu.common.result.Result;
import com.atguigu.tingshu.model.user.UserInfo;
import com.atguigu.tingshu.model.user.VipServiceConfig;
import com.atguigu.tingshu.user.client.UserInfoFeignClient;
import com.atguigu.tingshu.vo.user.UserInfoVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.HashSet;

/**
 * @author sun
 */
@Component
@Slf4j
public class UserInfoDegradeFeignClient implements UserInfoFeignClient {

    /**
     * 根据用户id获取用户名称
     *
     * @param id 用户id
     * @return 用户名称
     */
    @Override
    public String getUserNameById(Long id) {
        log.error("根据用户id{}获取用户名称的远程调用失败，返回空字符串",id);
        return "";
    }

    /**
     * 根据用户id获取用户信息
     *
     * @param id 用户id
     * @return 用户信息
     */
    @Override
    public UserInfo getUserInfoById(Long id) {
        log.error("根据用户id{}获取用户信息远程调用失败，返回null",id);
        return null;
    }

    /**
     * 判断用户是否购买了专辑
     *
     * @param albumId 专辑id
     * @return 是否购买专辑
     */
    @Override
    public Boolean isPaidAlbum(Long albumId) {
        log.error("判断用户是否购买了专辑{}，远程调用失败，返回null",albumId);
        return null;
    }

    /**
     * 获取用户已购的音频id
     *
     * @param albumId 专辑id
     * @param userId  用户id
     * @return 用户已购的音频id
     */
    @Override
    public HashSet<Long> getPaidTrackIds(Long albumId, Long userId) {
        log.error("获取用户id{}已购的音频id{}，远程调用失败，返回null",userId,albumId);
        return null;
    }

    /**
     * 根据vipId获取vip服务配置信息
     *
     * @param vipId vipId
     * @return vip服务配置信息
     */
    @Override
    public VipServiceConfig getVipServiceConfig(Long vipId) {
        log.error("根据vipId{}获取vip服务配置信息，远程调用失败，返回null",vipId);
        return null;
    }


    /**
     * 获取用户信息
     *
     * @return userInfoVo用户信息
     */
    @Override
    public Result<UserInfoVo> getUserInfoVo() {
        log.error("获取用户信息，远程调用失败，返回null");
        return null;
    }
}
